/*
 * TeacherAddress.h
 *
 *  Created on: 19 ��� 2010
 *      Author: Sartios
 */

#ifndef TEACHERADDRESS_H_
#define TEACHERADDRESS_H_

#include "../ITeacherAddress.h"

class TeacherAddress: public ITeacherAddress {
public:
	/**
	 * Sets attributs to NULL
	 */
	TeacherAddress();

	/**
	 * Set attiributs to given parameters
	 */
	TeacherAddress(const IAddress *address,const ITeacher *owner);

	/**
	 * Set attiributs to given parameters
	 */
	TeacherAddress(const ITeacher *owner,const IAddress *address);

	/**
	 * Deletes pointers
	 */
	virtual ~TeacherAddress();

	/**
	 * Set teacher to the given parameter
	 * \param ITeacher * , an implementation of ITeacher interface
	 */
	virtual	void		setTeacher(const ITeacher *teacher);

	/**
	 * Returns teacher
	 * \raturn ITeacher *, pointer to ITeacher implementation
	 */
	virtual ITeacher *	getTeacher(void)const;

	/**
	 * Sets address to given parameter
	 * \param IAddress *, implementation of IAddress
	 */
	virtual void	setAddress(const IAddress *address);

	/**
	 * Returns teacher's address
	 * \return IAddress *, pointer to IAddress implementation
	 */
	virtual	IAddress *	getAddress()const;
private:
	ITeacher	*teacher_;
	IAddress	*address_;
};

#endif /* TEACHERADDRESS_H_ */
